package com.gun.management.module.raffle.service.lotterylog;

import jakarta.validation.Valid;

import com.gun.management.module.raffle.controller.admin.lotterylog.vo.*;
import com.gun.management.module.raffle.controller.app.vo.*;
import com.gun.management.module.raffle.dal.dataobject.lotterylog.LotteryLogDO;
import com.gun.management.framework.common.pojo.PageResult;

/**
 * 用户抽奖日志 Service 接口
 *
 * @author 测试账号
 */
public interface LotteryLogService {

    /**
     * 创建用户抽奖日志
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createLotteryLog(@Valid LotteryLogSaveReqVO createReqVO);

    /**
     * 更新用户抽奖日志
     *
     * @param updateReqVO 更新信息
     */
    void updateLotteryLog(@Valid LotteryLogSaveReqVO updateReqVO);

    /**
     * 手动推送并更新
     * @param updateReqVO
     * @return
     */
    LotteryLogSendingOrderRespVO reSendingOrder(LotteryLogUpdateReqVO updateReqVO);

    /**
     * 删除用户抽奖日志
     *
     * @param id 编号
     */
    void deleteLotteryLog(Long id);

    /**
     * 获得用户抽奖日志
     *
     * @param id 编号
     * @return 用户抽奖日志
     */
    LotteryLogDO getLotteryLog(Long id);

    /**
     * 获得用户抽奖日志分页
     * @param userId
     * @param telantId
     * @param pageReqVO
     * @return
     */
    PageResult<LotteryLogRespVO> getAdminLotteryLogPageList(Long userId,Long telantId,LotteryLogPageRequestVO pageReqVO);




}